package com.wande.dataplatform.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.wande.common.tenant.core.TenantEntity;
import com.wande.dataplatform.domain.vo.DevTaskVO;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 数据开发任务实体
 *
 * @author wande
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dp_dev_task")
@AutoMapper(target = DevTaskVO.class)
public class DevTask extends TenantEntity {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 任务名称
     */
    private String name;

    /**
     * 任务类型: SQL, PYTHON, SHELL, FLINK
     */
    private String taskType;

    /**
     * 任务内容(SQL/脚本)
     */
    private String content;

    /**
     * 数据源ID
     */
    private Long datasourceId;

    /**
     * 执行引擎: DORIS, MYSQL, FLINK
     */
    private String engineType;

    /**
     * 引擎配置JSON
     */
    private String engineConfig;

    /**
     * 调度类型: MANUAL, CRON, DEPENDENCY
     */
    private String scheduleType;

    /**
     * 调度配置JSON
     */
    private String scheduleConfig;

    /**
     * DolphinScheduler工作流ID
     */
    private Long dsWorkflowId;

    /**
     * 状态: 0-草稿, 1-已发布, 2-已下线
     */
    private Integer status;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 描述
     */
    private String description;
}
